/**
 *
 * Copyright 2008 davethedev@googlemail.com
 *
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package nethelp.network.handler;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JTextArea;
import nethelp.gui.MainFrame;
import nethelp.os.NetworkCommand;

public class TraceRouteHandler {

    private JTextArea traceResults;
    private String traceHost;
    
    public TraceRouteHandler(JTextArea traceResults, String traceHost) {
        this.traceResults = traceResults;
        this.traceHost = traceHost;
        
        trace();
    }
    
    private Object trace() {
        try {
            String line;
            Process p = Runtime.getRuntime().exec(NetworkCommand.getTraceRoute() + " " + traceHost);
            BufferedReader input =
                    new BufferedReader(new InputStreamReader(p.getInputStream()));
            while ((line = input.readLine()) != null) {
                traceResults.setText(traceResults.getText() + "\n" + line);
                if (Thread.interrupted()) {
                    break;
                }
            }
            input.close();
        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
        return "OK";
    }
}
